package com.binhthuan.catechist.client;

import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.InputElement;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.RootPanel;

/**
 * @author Giang Đinh - Form đăng nhập của chương trình (được tạo từ 1 form HTML có sẵn).
 */
public class LoginForm extends FormPanel {

    /**
     * ID của ô nhập username.
     */
    private String usernameId;

    /**
     * ID của ô nhập password.
     */
    private String passwordId;
    
    /**
     * ID của ô ghi nhớ đăng nhập.
     */
    private String remeberMeId;

    /**
     * Khởi tạo form đăng nhập từ một form HTML có sẵn.
     * @param formId ID của form đăng nhập.
     * @param usernameId ID của ô nhập username.
     * @param passwordId ID của ô nhập password.
     */
    public LoginForm(String formId, String usernameId, String passwordId) {
        super(Document.get().getElementById(formId), false);
        onAttach();
        RootPanel.detachOnWindowClose(this);
        this.setAction("javascript:;");
        
        this.usernameId = usernameId;
        this.passwordId = passwordId;
    }

    /**
     * Khởi tạo form đăng nhập từ một form HTML có sẵn.
     * @param formId ID của form đăng nhập.
     * @param usernameId ID của ô nhập username.
     * @param passwordId ID của ô nhập password.
     * @param rememberMeId ID của ô ghi nhớ đăng nhập.
     */
    public LoginForm(String formId, String usernameId, String passwordId, String rememberMeId) {
        this(formId, usernameId, passwordId);
        this.remeberMeId = rememberMeId;
    }

    /**
     * Lấy tên đăng nhập.
     * @return Tên đăng nhập.
     */
    public String getUsername() {
        return ((InputElement) Document.get().getElementById(usernameId)).getValue();
    }
    
    /**
     * Lấy mật khẩu.
     * @return Mật khẩu.
     */
    public String getPassword() {
        return ((InputElement) Document.get().getElementById(passwordId)).getValue();
    }

    /**
     * Lấy ghi nhớ đăng nhập.
     * @return Ghi nhớ đăng nhập.
     */
    public String getRememberMe() {
        return ((InputElement) Document.get().getElementById(remeberMeId)).getValue();
    }
}
